查看原文
其他

历经 64 次更新,开发者倡议“产品别在周五上线”!惹争议后,其 AI 工具意外爆火,结果崩了

CSDN 2024-01-17

整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

相信从事互联网产品开发的程序员,对于项目上线这件事并不陌生,毕竟产品需要不断迭代更新。因此,上线这件事就显得较为隆重:研发人员务必在场,测试团队也少不了,运维团队更是重要,还有产品经理、设计人员等也需要对上线内容进行验收…… 

考虑到整个操作过程及后续工作的复杂性,每家公司对产品上线必然有相应的制度规范,一般来说也有固定的上线日期,可能是每周三,也可能是每周五——那么提问:身为一名产品开发的程序员,你参与的项目一般是周几上线?

针对这个问题,近日 AI 测试工具 Octomind 的首席工程师发出倡议:“绝对不要在周五发布更新!”而这个观点,很快就引起了极大的关注和讨论。

颇受欢迎的 Octomind 已更新 64 次,其中 9 次在周五

在进入正题前,我们先大致了解一下 Octomind。这是一款能自动维护和生成的基于浏览器的端到端测试工具,可集成到 Github Actions,Azure DevOps 等。从 Octomind 官网可以看到,其主打的就是解放工程师的测试时间:“工程师们最希望少花时间做的第一件事是什么?测试。不要把时间浪费在错误的测试上,请直接开发构建。”

根据官网介绍,用户只需给 Octomind 提供一个 URL,它就能利用 AI 发现、执行并维护其 E2E(end to end,端到端)测试。所谓 E2E 测试,就是模拟真实用户的操作流程,从用户界面开始,经过各个层级的系统组件直到最终输出,以此验证整个系统在各个环节的功能和性能是否合格,确保产品的质量和稳定性。

不过正如 Octomind 所说,E2E 测试存在一个重大的信任问题,即代码 Bug 并不是导致测试失败的唯一原因:第三方依赖性、时间问题、随机性、竞争条件等等,可能都会导致测试结果不稳定、不可靠。

基于此,Octomind 诞生了,它旨在帮开发者节省“因调试完全正常的代码而浪费的”宝贵时间;还即插即用,适用于 CI/CD 管道,可将测试结果及时反馈给用户,同时提供详细信息便于用户检查、复盘和调试。

凭借以上特性,Octomind 收获了业界人士的不少好评:

  • Aimino 联合创始人兼首席技术官 Duc Tam Nguyen 表示:“有了 Octomind 后,就像我的团队中多了两个人在提供高质量的测试用例,它比我们尝试过的任何其他工具都要好用”; 

  • Best Parents 联合创始人兼首席技术官 Aditya Advani 也对 Octomind 称赞道:“作为一个早期阶段的消费市场,我们需要保持高质量和高速度。幸运的是,Octomind 出现了。此刻,一位快乐的工程领导竖起了大拇指。”

据统计,颇受欢迎的 Octomind 发布至今年 11 月已经更新迭代了  64 次,其中有 9 次都在周五——然而,近来 Octomind 首席工程师 Daniel Draper 写了一篇博客,标题是“绝对不要在周五发布更新”。

拒绝在周五上线,意味着代码质量不够好?

Daniel Draper 在博客中提到,在软件开发行业中,许多程序员都持有一种共同观点,即周五不宜发布软件:周五的最后期限通常会促使他们急于完成任务,可能会在没有充分检查的情况下强行发布,从而导致一些问题。

  • 质量受损:倾向于省略一些看似不重要的测试或忽略测试失败的结果,导致发布的版本不稳定。

  • 周末加班:如果出了问题,开发人员不得不放弃周末时间来修复问题,从而导致倦怠和不满。

  • 遗忘细节:开发人员的工作重心转移后,可能无法回忆起上线时的所有细节,故障排除变得更加困难。

但是,知名计算机作家 Allen Holub 对此持相反意见:“如果你每天发布几次,使延迟时间很小,发布时不允许出现已知错误,有大量的测试(大部分是自动测试),在编写代码时由多人审核,那么在周五发布的风险基本上为零。” 

甚至,此前 Allen Holub 还曾直白表示:如果你拒绝在周五发布代码,那么你的代码质量肯定不够好——对于这个说法,Daniel Draper 有不同看法:“我不同意 Allen 关于‘不在周五发行’就意味着质量不高的说法。” 

事实上在博客开头,Daniel Draper 就解释道,其实他们团队本身并不拒绝周五发布更新,只是相较之下更为重视开发人员的休息时间。

如上文所说,他们团队曾 9 次在周五发布产品更新,但 Bug 总是不期然地出现,根本不管是否是工作日。而他所提议的“不要在周五上线”,只是出于珍惜自己和其他工程师的周末:“从根本上说,哪天上线只是对团队设定期望值的问题。那么如果有机会减少周末加班回滚或修复 Bug 的可能性,无论机会有多小,我都会抓住。” 

Daniel Draper 还补充道,在产品上线之前,当然应该发现并修复 Bug,但没人能百分之百保证没有 Bug,因此“如果没有业务一定要周五发布,我认为把更大的版本推到周一上线也没什么问题”。

引起火爆关注,Octomind 一度崩掉

Daniel Draper 的这篇博客在 Reddit 上吸引了诸多开发者的关注,并激起了许多人的共鸣:

  • “说得没错,Bug 在任何时候都可能发生,但如果大概率发生在周五,对团队来说无疑是雪上加霜。我就是这样,我一般都会避免在下班前上线产品,因为万一出了什么问题,处理起来会很头疼。”

  • “正因如此,我们团队一般不在周五或工作日下午 3 点后发布产品。因为我们的经验是,发布后通常只会出现两种问题:一是立即崩溃,然后回滚;二是几个小时甚至一天内都很正常,但之后会发现性能下降了或部分数据损坏了。因此,最好不要在下班前或周五上线。”

  • “所以说,整个游戏行业在周二发布/更新是有原因的。周一要确保上周制作的所有内容都井然有序,随时可以推送。然后周二发布,之后到周五都可以进行 Bug 修复,几乎无需在周末操心。”

不过也有部分人指出,某些产品在周五上线较为合适,例如 SaaS 和游戏:

  • “很多专注于大型业务的 SaaS 供应商会在周五发布软件,因为要迎合朝九晚五的人群,而这些人通常不会在周末工作。我宁愿在交易量少的时候处理影响交易的 Bug,也不想在交易量大的时候处理。” 

  • “我是认真的,唯一应该考虑在周五发布任何更新的软件行业是游戏行业,因为他们的客户周末休息。一般来说,他们最开心的时候是整个周末都能玩到新游戏。”

另外还有开发者建议,产品上线的最佳时间是周三:“一般来说,周一虽然大家都在办公室,但往往心思还没从周末回来,而这种状态可能会延续要周二。因此在我看来,周三是推出产品的最佳日期,那时工程师们都已经进入了状态,也还有周四周五可以去修复 Bug。” 

最后,Daniel Draper 这篇博客的意外火爆传播,同时让许多人对 AI 测试工具 Octomind 也产生了关注,并尝试注册使用——结果,由于注册的人数过多,对其在云中运行的后端服务器造成的负载太大,Octomind 崩掉了。 

当然,截至目前 Octomind 已经修复了这个问题,而他们对此也得出了一个教训:“我们尽量不在周五发布,也许我们也不应该发布那篇博客。”

那么你所在的团队一般是周几进行产品上线,以及对于产品上线时间,你又有什么看法呢?

参考链接:

https://www.octomind.dev/blog/we-went-viral-with-a-broken-app

https://www.reddit.com/r/programming/comments/18dprj9/never_ship_on_fridays/

推荐阅读:
生于越南,“开源改变了我的人生!”

上云一年烧320万美元,成功“下云”六个月后Ruby on Rails之父现身回了 14 个问题!

▶传字节跳动 2023 年销售额超腾讯;OpenAI 推出聊天内容存档功能;Stability AI 宣布推出订阅服务|极客头条

继续滑动看下一个

历经 64 次更新,开发者倡议“产品别在周五上线”!惹争议后,其 AI 工具意外爆火,结果崩了

向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存